// pages/test/index.js
import productList from '../../data/productList.js'
const productUtil = require('../../utils/productUtil.js');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    productPageList: [],
    searchKeyWord:''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getTabBar().init();
    this.updateProductList()

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  getCacheCartProductIdList() {
    let cacheCartIds = new Set(wx.getStorageSync('userCart').split(','))
    cacheCartIds.delete('')
    return cacheCartIds
  },

  updateProductList() {
    let cacheCartIds = this.getCacheCartProductIdList()

    productList.sort((a, b) => b.sortKey - a.sortKey).forEach(x => {
      x.inCart = cacheCartIds.has(String(x.id))
    })

    this.setData({
      productPageList: productList
    })
    this.getTabBar().setCartNumber(cacheCartIds.size)
  },

  clickProductCart(event) {
    let {
      productid,
      incart
    } = event.currentTarget.dataset

    productid = String(productid)

    let cacheCartIds = this.getCacheCartProductIdList()

    if (incart) {
      // 移除
      console.info('移除', productid)
      productUtil.removeCartProductNum(productid)
      cacheCartIds.delete(productid)
    } else {
      // 添加
      console.info('添加', productid)
      productUtil.setCartProductNum(productid, 1)
      cacheCartIds.add(productid)
    }

    wx.setStorageSync('userCart', [...cacheCartIds].join(','))
    this.updateProductList()
  },
  searchWordChange(event){
    var searchKeyword = event.detail
    this.setData({
      productPageList : productList.filter(x=>x.productName.includes(searchKeyword))
    })
  }

})